﻿<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)</TargetFrameworks>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <UseCompilerGeneratedDocXmlFile>false</UseCompilerGeneratedDocXmlFile>
  </PropertyGroup>

  <!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->
  <PropertyGroup>
    <TargetPlatformIdentifier>$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))</TargetPlatformIdentifier>
    <GeneratePlatformNotSupportedAssemblyMessage Condition="'$(TargetPlatformIdentifier)' != 'windows'">SR.PlatformNotSupported_AccessControl</GeneratePlatformNotSupportedAssemblyMessage>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'windows'">
    <Compile Include="System\Security\AccessControl\ACE.cs" />
    <Compile Include="System\Security\AccessControl\ACL.cs" />
    <Compile Include="System\Security\AccessControl\CommonObjectSecurity.cs" />
    <Compile Include="System\Security\AccessControl\Enums.cs" />
    <Compile Include="System\Security\AccessControl\NativeObjectSecurity.cs" />
    <Compile Include="System\Security\AccessControl\ObjectSecurity.cs" />
    <Compile Include="System\Security\AccessControl\ObjectSecurityT.cs" />
    <Compile Include="System\Security\AccessControl\Privilege.cs" />
    <Compile Include="System\Security\AccessControl\PrivilegeNotHeldException.cs" />
    <Compile Include="System\Security\AccessControl\SecurityDescriptor.cs" />
    <Compile Include="System\Security\AccessControl\Rules.cs" />
    <Compile Include="System\Security\AccessControl\Win32.cs" />
    <Compile Include="System\Security\Principal\Win32.cs" />
    <Compile Include="System\Security\Policy\Evidence.cs" />
    <Compile Include="System\Security\Policy\EvidenceBase.cs" />
    <Compile Include="$(CommonPath)System\Obsoletions.cs"
             Link="Common\System\Obsoletions.cs" />
    <!-- PInvoke sources -->
    <Compile Include="$(CommonPath)DisableRuntimeMarshalling.cs"
             Link="Common\DisableRuntimeMarshalling.cs" />
    <Compile Include="$(CommonPath)System\NotImplemented.cs"
             Link="Common\System\NotImplemented.cs" />
    <Compile Include="$(CommonPath)Microsoft\Win32\SafeHandles\SafeTokenHandle.cs"
             Link="Microsoft\Win32\SafeHandles\SafeTokenHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Libraries.cs"
             Link="Common\Interop\Windows\Interop.Libraries.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LUID.cs"
             Link="Common\Interop\Interop.LUID.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LUID_AND_ATTRIBUTES.cs"
             Link="Common\Interop\Interop.LUID_AND_ATTRIBUTES.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.TOKEN_PRIVILEGE.cs"
             Link="Common\Interop\Interop.TOKEN_PRIVILEGE.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.SecurityImpersonationLevel.cs"
             Link="Common\Interop\Interop.SecurityImpersonationLevel.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Interop.Errors.cs"
             Link="Common\Interop\Interop.Errors.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.ProcessOptions.cs"
             Link="Common\Interop\Interop.ProcessOptions.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.LookupPrivilegeValue.cs"
             Link="Common\Interop\Interop.LookupPrivilegeValue.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.RevertToSelf.cs"
             Link="Common\Interop\Interop.RevertToSelf.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.ConvertSdToStringSd.cs"
             Link="Common\Interop\Interop.ConvertSdToStringSd.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.ConvertStringSdToSd.cs"
             Link="Common\Interop\Interop.ConvertStringSdToSd.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.GetSecurityInfoByHandle.cs"
             Link="Common\Interop\Interop.GetSecurityInfoByHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.SetSecurityInfoByHandle.cs"
             Link="Common\Interop\Interop.SetSecurityInfoByHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.GetSecurityInfoByName.cs"
             Link="Common\Interop\Interop.GetSecurityInfoByName.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.SetSecurityInfoByName.cs"
             Link="Common\Interop\Interop.SetSecurityInfoByName.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.GetSecurityDescriptorLength.cs"
             Link="Common\Interop\Interop.GetSecurityDescriptorLength.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.CloseHandle.cs"
             Link="Common\Interop\Interop.CloseHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.OpenThreadToken_SafeTokenHandle.cs"
             Link="Common\Interop\Interop.OpenThreadToken_SafeTokenHandle.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.OpenProcessToken_IntPtr.cs"
             Link="Common\Interop\Interop.OpenProcessToken_IntPtrs.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetCurrentProcess.cs"
             Link="Common\Interop\Interop.GetCurrentProcess.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.SetThreadToken.cs"
             Link="Common\Interop\Interop.SetThreadToken.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Kernel32\Interop.GetCurrentThread.cs"
             Link="Common\Interop\Interop.GetCurrentThread.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.AdjustTokenPrivileges.cs"
             Link="Common\Interop\Interop.AdjustTokenPrivileges.cs" />
    <Compile Include="$(CommonPath)Interop\Windows\Advapi32\Interop.DuplicateTokenEx_SafeTokenHandle.cs"
             Link="Common\Interop\Interop.DuplicateTokenEx_SafeTokenHandle.cs" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.Collections" />
    <Reference Include="System.Collections.NonGeneric" />
    <Reference Include="System.Memory" />
    <Reference Include="System.Security.Principal.Windows" />
    <Reference Include="System.Runtime" />
    <Reference Include="System.Runtime.InteropServices" />
    <Reference Include="System.Threading" />
    <Reference Include="System.Threading.Thread" />
    <Reference Include="Microsoft.Win32.Primitives" />
  </ItemGroup>

</Project>
